const cartModel = require('../db/cart')
const menuModel = require('../db/menu')
module.exports = {
    addcart(req, res) {
        // 接收数据
        let {userid, menuid, num, speandkind} = req.body
        // 添加数据
        // 查询数据库中是否有当前用户的当前商品的当前规则和种类
        cartModel.findOne({userid, menuid, speandkind}, (err, docs) => {
            if(err) {
                throw new Error(err)
            }
            if(docs) { // 数据库中有这个数据
                // 对这条数据做修改 - 数量+num
                cartModel.updateOne({_id: docs._id}, {$inc: {num: num}}, (err, docs) => {
                    if(err) {
                        throw new Error(err)
                    }
                    res.json({
                        error_code: 0,
                        msg: '购物车添加成功！'
                    })
                })
            } else {
                // 这个数据在数据库中没有 - 新增一条
                cartModel.insertMany({
                    userid,
                    menuid,
                    speandkind,
                    num
                }, (err, docs) => {
                    if(err) {
                        throw new Error(err)
                    }
                    res.json({
                        error_code: 0,
                        msg: '购物车添加成功！'
                    })
                })
            }
        })
    },
    getall(req, res) {
        // 获取用户id
        let {userid} = req.params
        // 查询数据库数据
        cartModel.find({userid}, {__v: 0}, (err, docs) => {
            if(err) {
                throw new Error(err)
            }
            res.json({
                error_code: 0,
                msg: '获取购物车成功！',
                data: docs
            })
        })
    },
    getmenus(req, res) {
        let {menuids} = req.body
        menuids = menuids.split(',')
        menuModel.find({_id: {$in: menuids}}, (err, docs) => {
            if(err) {
                throw new Error(err)
            }
            res.json({
                error_code: 0,
                msg: '获取购物车商品成功！',
                data: docs
            })
        })
    },
    getcounts(req, res) {
        cartModel.count((err, docs) => {
            if(err) {
                throw new Error(err)
            }
            res.json({
                error_code: 0,
                msg: '获取数量成功！',
                data: docs
            })
        })
    }
}